home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / net / InetAddress$Cache.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.7 KB  |  76 lines

  1. package java.net;
  2.  
  3. import java.util.Iterator;
  4. import java.util.LinkedHashMap;
  5. import java.util.LinkedList;
  6. import sun.net.InetAddressCachePolicy;
  7.  
  8. final class InetAddress$Cache {
  9.    private LinkedHashMap cache;
  10.    private InetAddress.Cache.Type type;
  11.  
  12.    public InetAddress$Cache(InetAddress.Cache.Type var1) {
  13.       this.type = var1;
  14.       this.cache = new LinkedHashMap();
  15.    }
  16.  
  17.    private int getPolicy() {
  18.       return this.type == java.net.InetAddress.Cache.Type.Positive ? InetAddressCachePolicy.get() : InetAddressCachePolicy.getNegative();
  19.    }
  20.  
  21.    public InetAddress$Cache put(String var1, Object var2) {
  22.       int var3 = this.getPolicy();
  23.       if (var3 == 0) {
  24.          return this;
  25.       } else {
  26.          if (var3 != -1) {
  27.             LinkedList var4 = new LinkedList();
  28.             Iterator var5 = this.cache.keySet().iterator();
  29.             long var6 = System.currentTimeMillis();
  30.  
  31.             while(var5.hasNext()) {
  32.                String var8 = (String)var5.next();
  33.                InetAddress.CacheEntry var9 = (InetAddress.CacheEntry)this.cache.get(var8);
  34.                if (var9.expiration < 0L || var9.expiration >= var6) {
  35.                   break;
  36.                }
  37.  
  38.                var4.add(var8);
  39.             }
  40.  
  41.             var5 = var4.iterator();
  42.  
  43.             while(var5.hasNext()) {
  44.                this.cache.remove(var5.next());
  45.             }
  46.          }
  47.  
  48.          long var10;
  49.          if (var3 == -1) {
  50.             var10 = -1L;
  51.          } else {
  52.             var10 = System.currentTimeMillis() + (long)(var3 * 1000);
  53.          }
  54.  
  55.          InetAddress.CacheEntry var12 = new InetAddress.CacheEntry(var2, var10);
  56.          this.cache.put(var1, var12);
  57.          return this;
  58.       }
  59.    }
  60.  
  61.    public InetAddress.CacheEntry get(String var1) {
  62.       int var2 = this.getPolicy();
  63.       if (var2 == 0) {
  64.          return null;
  65.       } else {
  66.          InetAddress.CacheEntry var3 = (InetAddress.CacheEntry)this.cache.get(var1);
  67.          if (var3 != null && var2 != -1 && var3.expiration >= 0L && var3.expiration < System.currentTimeMillis()) {
  68.             this.cache.remove(var1);
  69.             var3 = null;
  70.          }
  71.  
  72.          return var3;
  73.       }
  74.    }
  75. }
  76.